home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / Storage.h < prev    next >
C/C++ Source or Header  |  1990-12-06  |  786b  |  42 lines

  1. #ifndef Storage_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define Storage_First
  6.  
  7. #include "Types.h"
  8.  
  9. #if defined(sun) || defined(sony)
  10. #   define has_alloca
  11. #endif
  12.  
  13. #if defined(sparc)
  14. #   ifndef __GNUG__
  15. #       define alloca(x) __builtin_alloca(x)
  16. #   endif
  17. #endif
  18.  
  19. #if defined(has_alloca)
  20. #   ifndef __GNUG__
  21.     extern "C" void *alloca(size_t);
  22. #   endif
  23.  
  24. #   define Alloca(x) alloca(x)
  25. #   define Freea(x) 
  26. #else
  27. #   define Alloca(x) ((void*) (new char[x]))
  28. #   define Freea(x) delete (x)
  29. #endif
  30.  
  31. extern bool gMemStatistics;
  32.  
  33. extern "C" void *Realloc(void*, size_t);
  34.  
  35. extern void PrintStorageStatistics();
  36. typedef void (*FreeHookFun)(void *, void *addr, size_t);
  37.     
  38. void StorageSetFreeHook(FreeHookFun, void *data);
  39. FreeHookFun StorageGetFreeHook(void **data);
  40.  
  41. #endif Storage_First
  42.